package com.example.canalclientsync.es.enums;

import com.example.canalclientsync.canal.po.Dir;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 模型分类：
 *
 * @author chen.cr
 * @since 2023/9/14
 */
@AllArgsConstructor
@Getter
public enum EsModelClassificationEnum {

    /**个人空间的*/
    IN_PERSONAL(0, 6100),

    /**部门空间的*/
    IN_DEPARTMENT(1, 6102),

    /**项目空间的*/
    IN_PROJECT(2, 6104),

    /**回收站的*/
    IN_RECYCLE(4, 6099),

    /*
     *  其它。项目附件、关联文件、转发文件等
     */
    OTHER(9, -1);
    ;

    private final int code;
    private final int spaceTypeCode;

    /**
     * 根据文件夹，解析其所在空间
     *
     * @param dir
     * @return
     */
    public static EsModelClassificationEnum getFromDir(Dir dir) {
        String[] split = dir.getTreeType().replaceFirst("/", "").split("/");
        int spaceType = Integer.parseInt(split[0]);

        for (EsModelClassificationEnum value : EsModelClassificationEnum.values()) {
            if (spaceType == value.getSpaceTypeCode()) {
                return value;
            }
        }

        return OTHER;
    }


}
